﻿using eFatura.Utility;
using Extensions;
using System;
using System.Data;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraEditors.Repository;

namespace eFatura
{
    public partial class Cevap : XPopupForm
    {
        int PayFlexId;
        public  string  MevcutCevap;
        bool ilgiliKisi = false;
         
        public Cevap(int PayFlexId, string mevcutCevap)
        {
            InitializeComponent();
            this.MevcutCevap = mevcutCevap;
            this.PayFlexId = PayFlexId;
        }
         
        private void Cevap_Load(object sender, EventArgs e)
        {
            lblMasraf.Visible = txtMasraf.Visible = SirketId == 1 || SirketId == 2 || SirketId == 3;

            Shown += Cevap_Shown;
            cmbCevap.SelectedIndex = 0;
            cmbCevap.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
            
            DataTable dt = AppSession.DataManager.ExecuteDataTable("GetCevap", PayFlexId);
            DataRow dr = dt.Rows[0];

            int onaylacakKullaniciId = dr["OnaylayacakKullaniciId"].ToIntNN();
            int onaylayacakDepartmanId = dr["OnaylayacakDepartmanId"].ToIntNN();
            
            if (onaylacakKullaniciId != -1)
                lblIlgili.Text = (RepositoryManager.Kullanici.DataSource as DataTable).Select("KullaniciId=" + onaylacakKullaniciId )[0]["AdSoyad"].ToString();
            else if (onaylayacakDepartmanId != -1)
                lblIlgili.Text = (RepositoryManager.Departman.DataSource as DataTable).Select("DepartmanId=" + onaylayacakDepartmanId)[0]["Departman"].ToString();

            if (dr["Cevap"] != DBNull.Value)
                cmbCevap.Text = dr["Cevap"].ToString();
            
            ilgiliKisi = (onaylacakKullaniciId == WhoAmI || onaylayacakDepartmanId == AppSession.UserInfo.DeptId) && cmbCevap.Text == "?" ;             
             
             
            if (dr["CevapTarihi"] != DBNull.Value)
            {
                DateTime cevapTarihi;
                DateTime.TryParse(dr["CevapTarihi"].ToString(), out cevapTarihi);
                lblCevapTarihi.Text = dr["Cevaplayan"].ToString() + " @" + cevapTarihi.ToShortDateString(); 
            }

            if (dr["TalepTarihi"] != DBNull.Value)
            {
                DateTime talepTarihi;
                DateTime.TryParse(dr["TalepTarihi"].ToString(), out talepTarihi);
                lblTalepTarihi.Text = talepTarihi.ToShortDateString();
            }

            if (dr["Tip"] != DBNull.Value)
                lblTip.Text = dr["Tip"].ToString();

            if (dr["Aciklama"] != DBNull.Value)
                txtAciklama.Text = dr["Aciklama"].ToString();

            txtMasraf.Text = dr["MasrafMerkezi"].ToStringNN();
        }

        private void Cevap_Shown(object sender, EventArgs e)
        { 
            cmbCevap.Focus();

            cmbCevap.Properties.ReadOnly = !ilgiliKisi;
            txtAciklama.Properties.ReadOnly = !ilgiliKisi;
            txtMasraf.Properties.ReadOnly = !ilgiliKisi;
            btnKaydet.Visible = ilgiliKisi;
        }

      
        private void btnKaydet_Click(object sender, EventArgs e)
        {
            AppSession.DataManager.ExecuteNonQuery("UpdCevap", PayFlexId, cmbCevap.Text, txtAciklama.Text, WhoAmI,txtMasraf.Text);
            this.DialogResult = System.Windows.Forms.DialogResult.OK;
        }
    }
}